Repository navigation
perf(release-vote-draft, release-vote-tally): render the vote drafts and decide the tally as code - #1617
Open
potiuk wants to merge 1 commit into
Open
perf(release-vote-draft, release-vote-tally): render the vote drafts and decide the tally as code#1617potiuk wants to merge 1 commit into
potiuk wants to merge 1 commit into
Conversation
potiuk
added this pull request to stack #1620
October 13, 2026 14:14
potiuk
force-pushed
the
perf/release-mgmt-3-votes
branch
from
October 13, 2026 15:23
c060705 to
50ebdbd
Compare
…and decide the tally as code Both vote skills had the agent assemble the Step-0 verdict, fill in the [VOTE] and [RESULT] [VOTE] mails, and compute the close time by hand. tools/release-management now does it: - vote-draft: `verdict` adds the planning-issue blocker and the verify-rc gate (a PASS counts only for this exact RC; FAIL or no comment blocks; --skip-verify-check resolves it). `render --step 2` draws the [VOTE] subject and body with every conditional block and the `atr vote start` command, appends How to verify to a canned body that lacks it, and refuses a missing URL, a missing svn revision under svnpubsub, or a window under 72h without --expedited; an expedited reason naming a CVE or "security" comes back as a warning, and rewording it stays the agent's job. `render --step 3 --sent-at` computes the close time. - vote-tally: tally.py moves into the package unchanged (its own roster parser kept). `verdict` blocks on a previous AMBIGUOUS note until it is acknowledged, `archive-url` renders the archive template, `preclassify` parses only bare vote lines and leaves everything else to the agent, `tally --min-approvals` applies the pr-approval rule, and `render` draws the [RESULT] [VOTE] mail, refusing a halted tally; no reply text reaches the body. The github-discussion and maintainer-roster pass rules are unspecified and stay with the agent. The `atr vote start` command quotes every configured value (the subject comes from a configured template) with the shared shell helpers. Each delivery mode, override, mechanism and outcome gets its own file; prerequisites and references move to siblings. Golden rules, Hard rules, Step 4, the generated blocks and the eval headings are unchanged. vote-draft 6,842 → 5,409 tokens, vote-tally 5,799 → 5,589. Twelve model-graded cases become pytest cases named after each former case, with byte-identical expected bodies; six judgement cases stay evals, each fixture now carrying the real tool output. Generated-by: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GTPsZ5aEE5bUVYqp47Dpvv
potiuk
force-pushed
the
perf/release-mgmt-3-votes
branch
from
October 14, 2026 08:09
50ebdbd to
6da06b7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Third PR of the stack; it builds on the verify-rc PR.
release-vote-draft:verdictadds the planning-issue blocker and the verify-rc gate. A PASS counts only for this exact RC, FAIL or no comment blocks, and--skip-verify-checkresolves it.render --step 2draws the[VOTE]subject and body with every conditional block, plus theatr vote startcommand.render --step 3 --sent-atcomputes the close time.release-vote-tally:tally.pymoves into the package unchanged.verdictblocks on a previous AMBIGUOUS note.archive-urlandpreclassifyare new;preclassifyparses bare vote lines only and leaves everything else to the agent.tally --min-approvalsapplies the pr-approval rule.renderdraws the[RESULT] [VOTE]mail, refuses a halted tally, and never puts reply text in the body.Behaviour changes worth a look
PASS-WITH-WARNINGSproceeds, with a warning. Golden rule 5 says "PASS", but verify-rc's own Golden rule 4 treats PASS-WITH-WARNINGS as a PASS, and the Hard rule only forbids FAIL.svn_revisionunder svnpubsub, is now a hard refusal rather than a placeholder.binding +1 >= approval_pr_min_approvals, with no veto. No veto was ever specified, and release votes can't be vetoed.atr vote startcommand quotes its configured values; the subject comes from a template.Type of change
Test plan
prek run --all-filespasses on the stack tip.tools/release-management: pytest / ruff / mypy, with two real-loadintegration tests.Was generative AI tooling used to co-author this PR?
Generated-by:.🤖 Generated with Claude Code
https://claude.ai/code/session_01GTPsZ5aEE5bUVYqp47Dpvv